
import { AcGameObject } from "./AcGameObject";//基类

export class Wall extends AcGameObject {//墙继承基类

  //wall没有Cell类参数，它本身就可以当成Cell放入overlay()函数里面去比较
  constructor(r, c,kind,gamemap) {//传入墙的位置
    super()//宽高和游戏图片全部都可以在配置类config.js中取得
    this.r=r;
    this.c=c;
    this.kind = kind;//墙的种类 "wood"木头 "iron"铁
    this.gamemap = gamemap;

    this.width = 0.95;//表明宽高都为0.8L
    this.height = 0.95;

    this.image = new Image();//图片对象
    this.status = "idle";
  }


  set_status(status){//墙被子弹打爆了，就令status="die"
    this.status = status;
  }

  start(){//只执行一次
  }
  update(){//每一帧执行一次 ，除了第一次
    if(this.status!=="die")this.render();//只有当游戏元素没有被销毁时，才会要渲染出来
  }

  render() {//渲染函数，调用draw画出墙
    let ctx = this.gamemap.ctx;
    let L = this.gamemap.L;

    if(this.kind==="wood")this.image.src = require("../images/wall/wall.gif");//不知道为什么，这里必须要加require!!我在这卡了一天！！
    else if(this.kind==="iron")this.image.src = require("../images/iron_wall/iron_wall.jpg");
    ctx.drawImage(
      this.image,
      this.c*this.gamemap.L,//转成canvas像素x坐标
      this.r*this.gamemap.L,//转成canvas像素y坐标
      L,
      L
    );

  }


}